เทคน คการตรวจสอบความถ กต องของ ข อม ล Error Detection and Correction
กล าวน า การร บส งข อม ลส งท เป นห วใจในการด าเน นการค อ ความถ กต องตรงก น ของข อม ล ซ งในว ธ การร บส งไม ว าจะเป นแบบแอนะล อกหร อแบบด จ ตอล ต าง ก ให ความส าค ญต อส งน เช นเด ยวก น แต ในการร บส งข อม ลแบบด จ ตอลจะม ข อด ในเร องของการตรวจสอบความถ กต องของข อม ล
ว ธ ท ใช ในการตรวจสอบความถ กต อง Parity Error Detection Data Correction Using LRC/VRC Cyclic Redundancy Check (CRC) Checksum Error Detection
Parity Error Detection เป นกระบวนการตรวจสอบความถ กต องท ใช ในว ธ การส งแบบไม เข า จ งหวะ(Asynchronous) โดยว ธ การท างานค อจะม บ ตข อม ลเพ มข นมาอ ก 1 บ ต ซ งจะเร ยกว า พาร ต บ ต(Parity Bit) เป นต วตรวจสอบ โดยจ าเป นต องม การตก ลองก นก อนจะท าการให จ านวนของลอจ ก 1 เม อรวมก นก บพาร ต บ ตแล วจะให จ านวนลอจ ก 1 เป นจ านวนค (Even) หร อจ านวนค (Odd)
ร ปแบบการท างานของ Even Parity Error Detection Parity Bit 0 MSB LSB 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 Even Odd
ร ปแบบการท างานของ Odd Parity Error Detection Parity Bit 1 MSB LSB 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 Even Odd
แบบฝ กห ดประกอบความเข าใจ ให น กศ กษาท าการค านวณหาค าพาร ต บ ตแบบลอจ ก 0 แบบจ านวนค (Even Parity Error Detection) พร อมแสดงว ธ ท า 1. 0100 0011 2. 1100 1111 3. 0101 0101 4. 0110 1100 5. 0000 0000
ค าถามชวนค ด เม อม การส งข อม ลออกไปค อ 0010 1100 แต เม อผ ร บได ร บข อม ล 1000 1100 และม กระบวนการตรวจสอบโดยใช ว ธ Even Parity Error Detection น กศ กษาค ดว าผลล พธ ท ได จะเป นอย างไร ระบบการตรวจสอบจะสามารถท าได ถ กต องหร อไม เพราะเหต ใดพร อมให เหต ผลประกอบ
Data Correction Using LRC/VRC เป นเทคน คท ใช ร ปแบบผสมผสานแบบ 2 ม ต โดยน ากระบวนการ Even Parity Check Detection ในการหาค า Vertical Redundancy Check(VRC) เพ อ หาค าความถ กต องของแต กล มข อม ล จากน นน าข อม ลท งหมดมาท าการหาค า ความถ กต องด วยเทคน ค XOR เพ อให ได ค า Longitudinal Redundancy Check(LRC) เม อได ค าท งสองก น าไป LRC ท าการ XOR ก บค าท ท าการส งออก ไปถ าได ค าตอบเป น 0 ก แสดงว าข อม ลท ได ร บถ กต อง
ตารางความจร งของลอจ ก Excusive-OR (XOR) INPUT A INPUT B Result 0 0 0 0 1 1 1 0 1 1 1 0
ร ปแบบการท างานของ LRC/VRC ต วอย าง ให ท าการค านวณหาค า LRC/VCR พร อมท งตรวจสอบความถ กต องของ ค าตอบ เม อท าการส งข อม ล Help! ออกไป โดยข อม ลต วอ กษรจะตรงก บค าใน ตารางแอสก (ASCII Table)
Solution(1) แปลงข อม ลท ได แล วท าการหาค า VRC ด วยว ธ Even Parity Check ASCII VRC MSB LSB Code H 0 1 0 0 1 0 0 0 e 0 1 1 0 0 1 0 1 l 0 1 1 0 1 1 0 0 p 1 1 1 1 0 0 0 0! 0 0 1 0 0 0 0 1
Solution(2) ใช เทคน ค XOR ก บกล มข อม ลท งหมดรวมท ง VRC บ ตด วย **เทคน ค ถ าจ านวนลอจ ก 1 ได เป นจ านวนค ผลล พธ ท ได ค อ 1 **
ASCII VRC MSB LSB Code H 0 1 0 0 1 0 0 0 e 0 1 1 0 0 1 0 1 l 0 1 1 0 1 1 0 0 p 1 1 1 1 0 0 0 0! 0 0 1 0 0 0 0 1 LRC 1 0 0 1 0 0 0 0
ว ธ การตรวจค าตอบ ผลล พธ ท น าข อม ลท ท าการส งท งหมด มาท าการ XOR ก บค า LRC ผลล พธ ท ได จะต องได ลอจ ก 0 ท งหมด
ASCII VRC MSB LSB Code H 0 1 0 0 1 0 0 0 e 0 1 1 0 0 1 0 1 l 0 1 1 0 1 1 0 0 p 1 1 1 1 0 0 0 0! 0 0 1 0 0 0 0 1 LRC 1 0 0 1 0 0 0 0 Result 0 0 0 0 0 0 0 0
แบบฝ กห ดประกอบความเข าใจ ให ท าการค านวณหาค า LRC/VRC พร อมท งตรวจสอบความถ กต องของ ค าตอบ เม อท าการส งข อม ลด งต อไปน 1. Hello 2. Net 3. Work 4. Map 5. Pop ค า ASCII Code : H = 0x48 M = 0x4D N = 0x4E P = 0x50 W = 0x57 a = 0x41 e = 0x65 k = 0x6B l = 0x6C o = 0x6F p = 0x70 t = 0x74
CRC ว ธ การ Cyclic Redundancy Check(CRC) เป นว ธ การตรวจสอบท ได ร บ ความน ยมในการใช งานส าหร บการร บส งข อม ลแบบเข าจ งหวะ(Synchronous) ซ งได ร บการพ ฒนาโดย IBM ข นตอนการท างานค อ จะท าการสร างต วหาร (divisor)ข นมาตามจ านวนบ ตท ต องการ ต วอย างเช น CRC-16 จะใช จ านวนบ ตท เป นต วหารจ านวน 17 บ ต ส วน CRC-4 จะใช จ านวนบ ตท เป นต วหารจ านวน 5 บ ต และใช กระบวนการ XOR ในการหาผลล พธ ของค าตอบ
ข นตอนการท างานของ CRC ก าหนดค าต วหาร(divisor) ตามร ปแบบ CRC ท ใช ในการตรวจสอบโดยต องม จ านวนบ ตเพ มข นมาอ ก 1 บ ต ท าการเพ มลอจ ก 0 ท ายของล าด บข อม ลตามจ านวนบ ตท ตกลงตามร ปแบบ CRC น าค าข อม ลท เพ มลอจ ก ท าการ XOR ก บค าต วหาร(divisor) ผลล พธ ท ได เราจะ เร ยกว า ค า CRC character น าค า CRC character ท ได แทนค าลอจ ก 0 ท ใส ในตอนแรก เม อน าค าข อม ลท เพ มค า CRC character แล วก บการ XOR ก บค าต วหาร ถ า ผลล พธ ท ได เป นศ นย แสดงว าข อม ลท ส งม ความถ กต อง
ร ปแบบการท างานของ CRC ต วอย าง ให ท าการค านวณค า CRC โดยใช กระบวนการ CRC-4 โดยม ค าต วหาร (divisor) เท าก บ 10011 และม ค าข อม ลค อ 1100 0110 1011 01 จงแสดงว ธ การ ค านวณ พร อมท งตรวจสอบผลล พธ ท ได ว ธ การค านวณ ท าการเพ มลอจ ก 0 ตามจ านวนบ ตตามร ปแบบการตรวจสอบ(ในท น ค อ CRC-4) ค าต งต นของข อม ล 1100 0110 1011 01 0000
น าค าข อม ลท เพ มลอจ ก 0 มาท าการ XOR ก บ ค าต วหาร 10011 11000 11010 11010 000 10011 1011 1 1001 1 10 010 10 011 11011 10011
เม อตามว ธ การข นต น จนกระท งเสร จส นจะได CRC Character = 1001 ด งน นข อม ลท ท าการส งจากเด ม 1100 0110 1011 01 0000 ข อม ลใหม 1100 0110 1011 01 1001 ค าต วหาร(divisor) จะเท าก บ 10011
แบบฝ กห ดประกอบความเข าใจ ให ท าการค านวณหาค า CRC-4 และม ค าต วหาร(divisor) 10011 พร อมท ง ตรวจสอบความถ กต องของค าตอบ เม อท าการส งข อม ลด งต อไปน 1. 1100 0100 2. 0011 1100 3. 1100 1100 4. 0110 0011 5. 1010 1010
ค าถามชวนค ด ท าไมค าต วหาร(divisor) ต องใช จ านวนบ ตเพ มข น 1 บ ต เม อก าหนดค า CRC ท ก าหนด ต วอย างเช น CRC-4 ท าไมถ งใช ต วหาร(divisor)จ านวน 5 บ ต
Checksum Error Detection เป นว ธ การตรวจสอบข อผ ดพลาด ท น ยมเพ อตรวจสอบความตรงก นของ ข อม ล 2 ช ด ซ งม ข อด ในเร องความเร วในการตรวจสอบแต ว ธ น ก ไม สามารถ ร บประก นความถ กต องตรงก นได 100 เปอร เซ นต โดยม ว ธ การตรวจสอบได 2 แบบค อ 1.น าค าข อม ลท งหมดมาบวกก นแล วท าการต ดบ ตทด(Carry-Flag) ออกแล วน า ผลล พธ ท ได มาท าการทดสอบ 2.น าค าข อม ลท งหมดมาท าการ XOR ก นเพ อหาผลล พธ
ตารางสร ปการใช งานร ปแบบการตรวจจ บข อผ ดพลาด Error Method Summary Error Method Data Type Detection Corrections Number of Errors Detectable Parity Asynchronous Detection One per Character LRC/VRC Asynchronous Correction One per Message CRC Either Detection Unlimited Checksum Synchronous Correction Unlimited
ขนาดข อม ลเพ มเต ม(Overhead) ของแต ละว ธ Error Method Parity LRC/VCR CRC Checksum Overhead One bit per Character One bit per Character plus LRC Character CRC Bytes at end of Message Checksum Character at end of Message